package com.zimmur.service;

import com.zimmur.common.ReturnJsonEntity;
import com.zimmur.model.account.GoodsUser;
import com.zimmur.model.account.User;
/**
 * 用户服务接口
 * @author Administrator
 *
 */
public interface IUserService {  
    /**
     * 获取用户信息
     * @param userName
     * @param platForm 默认为App登录 wx=微信OpenID,wb=微博OpenID
     * @return
     */
    public User getUserInfoByUserName(String userName,String platForm);    
    /**
     * 更新授权码及设备ID
     * @param user
     * @return
     */
    public boolean updateUserToken(User user);
    /**
     * 获取授权码
     * @param user
     * @return
     */
    public String getUserToken(User user);
    /**
     * 根据授权码获取用户ID
    * @Title: getUserIdByToken 
    * @Description: 根据授权码获取用户ID
    * @param token
    * @return Long    返回类型
     */
    public Long getUserIdByToken(String token);
    /**
     * 根据用户ID删除Redis Token记录
    * @Title: delUserToken 
    * @Description: 根据用户ID删除Redis
    * @param userId  
    * @return void    返回类型
     */
    public void delUserToken(String userId);
    /**
     * 用户注册
     * @param user
     * @param platForm
     * @return 0=注册成功 200201=手机验证码错误
     */
    public boolean registerUser(User user,String openId, String platForm);
    /**
     * 根据用户ID获取用户信息
     * @param userId
     * @return User对象
     */
    public User getUserInfoByUserId(long userId);
    /**
     * 根据用户ID增加用户文章数
     * @param userId
     * @return True表示成功
     */
    public boolean updateUserTopicNum(long userId);
    /**
     * 根据用户ID增加或减少粉丝数
     * @param userId
     * @param num 1表示累加 -1表示减少
     * @return 
     */
    public boolean updateUserFollowNum(long userId,int num);
    
    public GoodsUser selectByUserId(long userId);
	/**
	 * 根据关注用户ID和被关注用户ID返回用户基本信息和是否被关注
	 * @param createUser 关注用户
	 * @param userId   被关注用户
	 * @return
	 */
    GoodsUser selectGoodsIsConcern(long createUser,long userId);
    /**
	 * 根据关注用户ID和被关注用户ID返回用户基本信息和是否被关注
	 * @param createUser 关注用户
	 * @param userId   被关注用户
	 * @param userType 关注类型
	 * @return
	 */
    GoodsUser selectTopicIsConcern(long createUser,long userId,Integer userType);
    /**
     * 修改个人信息
     * @param user
     * @return
     */
    int updateUserinfo(User user);
    /**
     * 修改密码
     * @return
     */
    int updateUserUserPwd(User user);
    /**
     * 查找帐号是否存在
     * @return
     */
    Long selectUserNameAndUserPwd(User user);
    Long selectByUserNameAndMobileNo(User user);
    User selectUserIdAndUserPwd(User user);
    
    boolean weiboUserCanelAuthor(String uid);
    /**
     * 用户登录
    * @Title: login 
    * @Description: 用户登录
    * @return User    返回类型
     */
    public ReturnJsonEntity login(String account,String password,String deviceId,String platForm);
}  